Route 53でサブドメインを別のHosted Zoneに権限委譲する
こんにちは、菊池です。
Route53を使って管理しているドメインで、サブドメイン発行して別のHosted Zoneに権限を委譲する方法を紹介します。
ユースケース
例えば、以下のようなケースでは組織Aが管理しているexample.comから、サブドメインjp.exampleを組織Bに権限委譲しています。
- 組織A(委譲元)
- 管理ドメイン:example.com
- 組織B(委譲先)
- 管理ドメイン:jp.example.com
このように、権限を委譲されることで組織Bでは自由にjp.exampleを利用することができるようになります。
AWSのマネージドDNSサービスであるRoute53で発行・運用しているドメインでも、上記のようにサブドメインを委譲することができます。企業で保有しているトップドメインを、サービスの単位などで適切に委譲していくことで、運用を分離させることができます。
やってみた
実際にやってみました。アカウントAのRoute53で取得・管理しているbopochi.netから、サブドメインjp.bopochi.netを発行しアカウントBのRoute53に権限委譲します。
すでに委譲元であるアカウントAにはRoute53の設定がされている前提で、以下の手順で実施します。
- アカウントB(委譲先)でサブドメインのHosted Zoneを作成
- 1で作成されたサブドメインのNSレコードをアカウントA(委譲元)のNSレコードに設定
まず、アカウントA(委譲元)のHosted Zoneにはbopochi.netが登録されています。
アカウントB(委譲先)側で委譲するサブドメインのHosted Zoneを作成します。Route53のコンソールからCreate hosted Zoneを選択。
jp.bopochi.netを作成します。
作成できました。ついてに、Aレコードをいくつか設定しています。
試しに、Route53に登録したjp.bopochi.netを問い合わせしてみます。
$ dig A @8.8.8.8 jp.bopochi.net ; <<>> DiG 9.8.3-P1 <<>> A @8.8.8.8 jp.bopochi.net ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 6644 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;jp.bopochi.net. IN A ;; AUTHORITY SECTION: bopochi.net. 847 IN SOA ns-2005.awsdns-58.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400 ;; Query time: 45 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sun Nov 20 15:05:56 2016 ;; MSG SIZE rcvd: 119
Hosted zoneは登録しましたが権限が委譲されていないため、この時点ではAレコードは見つかりません。権限を委譲するため、アカウントBに登録されたjp.bopochi.netのNSレコードの値をコピーします。
アカウントAでjp.bopochi.netのNSレコードを登録します。値には、アカウントBからコピーした値を入れます。
アカウントAにNSレコードが登録できました。これで委譲は完了です。
これで、委譲先のHosted Zoneに登録されたAレコードを問い合わせすることで、応答が得られます。
$ dig A @8.8.8.8 jp.bopochi.net ; <<>> DiG 9.8.3-P1 <<>> A @8.8.8.8 jp.bopochi.net ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27513 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;jp.bopochi.net. IN A ;; ANSWER SECTION: jp.bopochi.net. 299 IN A 52.xxx.xxx.xxx ;; Query time: 146 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sun Nov 20 15:08:16 2016 ;; MSG SIZE rcvd: 48
$ dig A @8.8.8.8 www.jp.bopochi.net ; <<>> DiG 9.8.3-P1 <<>> A @8.8.8.8 www.jp.bopochi.net ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11938 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.jp.bopochi.net. IN A ;; ANSWER SECTION: www.jp.bopochi.net. 299 IN A 52.xxx.xxx.xxx ;; Query time: 141 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sun Nov 20 15:10:03 2016 ;; MSG SIZE rcvd: 52
最後に
いかがでしょうか。Route53を使うことでも管理しているドメインから、他のアカウントへサブドメインの権限を委譲することが可能です。もちろん、同じアカウント内でもサブドメイン内でHosted Zoneを分けて運用することも可能です。